# def p(x):
#     return x*x
# print(p(3))
# def myabs(y):
#     if y < 0:
#         return -y
#     else:
#         return y
# a =lambda y: -y if y<0 else y
# print(a(4))
# ls1 = [1,2,3,4,5,6,7,8,9]
# ls2 = list(map(int,ls1))
# print(ls2)
# # 字符串元素进行修改
# ls1 = ['1','2','3','4']
# def hsm(n):
#     return n+"--"
# ls = list(map(hsm,ls1))
# print(ls)
# # 将列表中的所有数字，设置为绝对值
# ls3 = [-1,-2,-3,4,5,6]
# ls4 = list(map(lambda j: -j if j<0 else j,ls3))
# print(ls4)


# 前提：返回的函数必须是函数内部定义的函数
# def method1(x): 2usages
# def methodtest(y):
# print("--.,X,Y)
# return 4
# return
# methodtest #返回一个函数
# a=method1("tom")#a代表返回的函数methodtest方法
# r= a("lily")#调用内部函数
# print(r)
# print(method1("tom1")("lily1"))

#返回值为函数

# def x(n):
#     def y(m):
#         print("--",n,m)
#         return 5
#     return  y
# a = x("zhou")
# b = a("yong")
# print(b)
# print(x("zhou")("yong"))

# 装饰器
def x(n): #装饰参数n为函数
   def x_1(m): #被装饰函数的参数
       print(f"{n.__name__}开始执行，参数为:{m}")
       s = n(m)#调用被装饰函数，定义一个变量作为
                 # 原始函数的结果
       print(f"{n.__name__}执行结束了，返回结果为{s}")
       return s
   return x_1 #包装函数
@x  #等价于 y = x(y)
def y(a):#y等价于n
    num = 0
    for i in range(a):
        num += i
    return num
y(100) #y(100)等价于x_1(100)   100等价于m

